package cn.tedu.carehome.foundation.service;

import cn.tedu.carehome.foundation.pojo.dto.VisitorAddNewDTO;
import cn.tedu.carehome.foundation.pojo.dto.VisitorUpdateDTO;
import cn.tedu.carehome.foundation.pojo.vo.VisitorListItemVO;
import cn.tedu.carehome.foundation.pojo.vo.VisitorStandardVO;

import java.util.List;

/**
 * 处理来访人员信息的业务接口
 */
public interface IVisitorService {
    /**
     * 添加来访人员信息
     * @param visitorAddNewDTO 来访人员DTO类
     */
    void addNew(VisitorAddNewDTO visitorAddNewDTO);

    /**
     * 通过来访人员Id删除来访人员信息
     * @param id 来访人员Id
     */
    void deleteById(Long id);

    /**
     * 通过传过来的ID数组批量删除来访人员
     * @param ids ID数组
     */
    void deleteByIds(Long[] ids);

    /**
     * 通过来访人员Id修改来访人员信息
     * @param id 来访人员ID
     * @param visitorUpdateDTO 休要修改的来访人员信息
     */
    void UpdateInfoById(Long id, VisitorUpdateDTO visitorUpdateDTO);

    /**
     * 查询拜访人员表有多少条数据
     * @return 返回查询到的数据条数
     */
    Integer count(Long oldId);
    /**
     * 通过来访人员ID获取来访人员的详细信息
     * @param id 来访人员ID
     * @return 返回来访人员信息
     */
    VisitorStandardVO selectById(Long id);
    /**
     * 同过老人ID查询与老人相关的来访人员表
     * @return 来访人员表
     */
    List<VisitorListItemVO> list(Integer page, Integer size);

    /**
     * 重建缓存
     */
   void rebuildCache(Integer page, Integer size);
}
